/*
 * @Author: lmk
 * @Date: 2021-09-29 09:48:57
 * @LastEditTime: 2021-12-15 10:26:30
 * @LastEditors: lmk
 * @Description: 
 */
// 全局公用方法  所有的公用mixin都卸载这个js
import {mapGetters} from 'vuex'
import {aliosCdn} from '@/utils/config.js'
import dayjs from 'dayjs'
import {cityPathFormat} from '@/utils'
export default {
	data(){
		return {
			aliosCdn
		}
	},
	computed:{
		...mapGetters(['ossParams','redNotif'])
	},
	methods:{
		//hasParams 是否需要拼接参数
		imgFilter(img,hasParams=true,filterType=""){
			if(!img) return false;
			if(img&&!img.includes('https://')&&this.ossParams&&img.indexOf('/static')==-1) img = `https://${this.ossParams.bucket.file}.${this.ossParams.endpoint}/${img}`;
			const image = hasParams&&`${img}?x-oss-process=image/resize,w_700/quality,Q_70` || img;
			if(filterType==='reload'){
				return image
			}
			return this.imgFilter(image,false,'reload') //为防止设置路径时机不正确得情况 再执行一次
		},
		//current 可以传下标或者路径
		previewUrls(urls=[],current=''){
			// 因为显示的时候已经转换过了 所以这里不需要转换添加参数了
			urls = urls.map(val=>this.imgFilter(val,false));
			if(current) {
				// 判断current是下标还是路径 
				const url  = `${current}`.length>4 ? current : urls[current]
				current = this.imgFilter(url,false,'preview')
			}
			uni.previewImage({
				current,
				urls
			})
		},
		cityPathFormat,
		routeBack(txt='操作成功'){
			this.$u.toast(txt);
			setTimeout(()=>{
				this.$u.route({type:'back'})
			},1000)
		},
		// 点击隐藏红点通知
		itemClick(item){
			if(item.noticeType){
				const redNotif = this.redNotif;
				const typeList = item.noticeType.split(',');
				const findType = typeList.find(val=>this.redNotif[val])
				redNotif[findType] = false;
				this.$store.dispatch('setRedNotif',redNotif)
			}
		},
		// 根据当前类型返回是否显示红点
		showRedNotice(item){
			if(item.noticeType){
				const typeList = item.noticeType.split(',');
				return typeList.some(val=>this.redNotif[val])
			}
		},
		/**
		 * 广告跳转
		 */
			linkUrlHandle(item){
					console.log(item)
					if(!item.linkUrl) return false;
					const url = {
						1:'webview/webview',
						9:'newDetail/index',
						10:'itemDetail/goodsDetail',
						11:'itemDetail/itemDetail'
					}[item.linkType];
		
					let params={};
					switch (item.linkType) {
						case 1:
							//外链
							params={
								linkUrl:item.linkUrl
							}
							break;
						case 9:
							//资讯列表
							item.id = item.linkUrl;
							params = {
								id:item.id
							}
							break;
						case 10:
							//商品详情
							let ids = item.linkUrl;
							item.id = ids.substring(0,ids.indexOf(','));
							params={
								id:item.id
							}
							break;
						case 11:
							//参展剧本详情
							let ids2 = item.linkUrl.split(",");
							let id = ids2[0];            
							let productId = ids2[1];
							
							params={
								id:id,
								productId:productId,
								type:'detailTestReply'
							}
							break;
						default:
							break;
					}
					console.log(params)
					if(url){
						this.$u.route({
							url:`/pagesA/${url}`,
							params:params
						})
					}
				},
	},
	//拨打电话
	goIphone(iphone){
		if(!iphone) return
		uni.makePhoneCall({
			phoneNumber: iphone
		})
	},
	onUnload(){
		this.$store.dispatch('setFailLogin',false)
	},
	filters:{
		timeFormat(val){
			if(!val) return "";
			return dayjs(val).format('YYYY.MM.DD HH:mm')
		},
		dayFormat(val){
			if(!val) return "";
			return dayjs(val).format('YYYY.MM.DD')
		},
		dayFormatZH(val){
			if(!val) return "";
			return dayjs(val).format('YYYY年MM月DD日')
		},
		monthDayFormat(val){
			if(!val) return "";
			return dayjs(val).format('MM.DD')
		},
		cityPathFormat(val){
			return cityPathFormat(val)
		},
    // 评论时间 
    createTimeFilte(val){
      let timer = dayjs().unix() - dayjs(val).unix()
      if(timer > 86400) {
        return dayjs(val).format('YYYY-MM-DD')
      }
      if(timer > 3600 && timer < 86400) {
        return  `${(timer / 3600).toFixed(0)}小时前`
      }
      if(timer > 60 && timer < 3600) {
        return `${(timer / 60 ).toFixed(0)}分钟前`
      }
      if(timer < 60) {
        if(timer <= 1) {
          return '刚刚'
        }
        return `${timer}秒前`
      }
   }
	}
}